package com.junchenrobot.mes.enums;

import lombok.Getter;

import java.util.Objects;

/**
 * 执行状态枚举
 *
 * @author SeaWave
 * @date 2023/01/05
 */
@Getter
public enum ExecuteStateEnum {

    /**
     * 任务等待执行
     */
    TASK_WAITING(-1, "等待执行"),
    /**
     * 正在执行
     */
    TASK_EXECUTING(0, "正在执行"),
    /**
     * 正在取料
     */
    TASK_LOADING(1, "正在取料"),
    /**
     * 正在放料
     */
    TASK_UNLOADING(2, "正在放料"),
    /**
     * 执行完成
     */
    TASK_FINISHED(3, "执行完成"),
    /**
     * 执行异常
     */
    TASK_EXCEPTION(4, "执行异常");


    final Integer state;

    final String describe;

    ExecuteStateEnum(Integer state, String describe) {
        this.state = state;
        this.describe = describe;
    }

    /**
     * 获取状态描述
     *
     * @param state 状态
     * @return {@link String}
     */
    public static String getDescribeByState(Integer state) {
        ExecuteStateEnum[] values = values();
        for (ExecuteStateEnum value : values) {
            if (Objects.equals(value.state, state)) {
                return value.describe;
            }
        }
        return "";
    }
}
